#include"dao_gsl_permutation.h"

DAO_INIT_MODULE;
DaoVmSpace *__daoVmSpace = NULL;

#ifdef __cplusplus
extern "C"{
#endif

static DaoNumItem constNumbers[] =
{

  { NULL, 0, 0 }
};
static void dao__gsl_permutation_alloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_calloc( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_init( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_free( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_memcpy( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_fread( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_fwrite( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_fscanf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_fprintf( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_size( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_data( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_swap( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_valid( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_reverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_next( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_prev( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_mul( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_linear_to_canonical( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_canonical_to_linear( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_inversions( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_linear_cycles( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_canonical_cycles( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permutation_get( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_char( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_char_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_float( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_float_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_int( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_int_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_long( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_long_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_long_double( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_long_double_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_short( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_short_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_uchar( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_uchar_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_uint( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_uint_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_ulong( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_ulong_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_ushort( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_ushort_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_char( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_char_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_float( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_float_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_int( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_int_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_long( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_long_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_long_double( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_long_double_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_short( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_short_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_uchar( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_uchar_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_uint( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_uint_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_ulong( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_ulong_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_ushort( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_ushort_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_complex( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_complex_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_complex_float( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_complex_float_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_complex_long_double( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_complex_long_double_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_complex( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_complex_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_complex_float( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_complex_float_inverse( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_complex_long_double( DaoContext *_ctx, DValue *_p[], int _n );
static void dao__gsl_permute_vector_complex_long_double_inverse( DaoContext *_ctx, DValue *_p[], int _n );

static DaoFuncItem dao_Funcs[] =
{
  { dao__gsl_permutation_alloc, "gsl_permutation_alloc( n : int )=>gsl_permutation" },
  { dao__gsl_permutation_calloc, "gsl_permutation_calloc( n : int )=>gsl_permutation" },
  { dao__gsl_permutation_init, "gsl_permutation_init( p : gsl_permutation )" },
  { dao__gsl_permutation_free, "gsl_permutation_free( p : gsl_permutation )" },
  { dao__gsl_permutation_memcpy, "gsl_permutation_memcpy( dest : gsl_permutation, src : gsl_permutation )=>int" },
  { dao__gsl_permutation_fread, "gsl_permutation_fread( stream : stream, p : gsl_permutation )=>int" },
  { dao__gsl_permutation_fwrite, "gsl_permutation_fwrite( stream : stream, p : gsl_permutation )=>int" },
  { dao__gsl_permutation_fscanf, "gsl_permutation_fscanf( stream : stream, p : gsl_permutation )=>int" },
  { dao__gsl_permutation_fprintf, "gsl_permutation_fprintf( stream : stream, p : gsl_permutation, format : string )=>int" },
  { dao__gsl_permutation_size, "gsl_permutation_size( p : gsl_permutation )=>int" },
  { dao__gsl_permutation_data, "gsl_permutation_data( p : gsl_permutation )=>array<int>" },
  { dao__gsl_permutation_swap, "gsl_permutation_swap( p : gsl_permutation, i : int, j : int )=>int" },
  { dao__gsl_permutation_valid, "gsl_permutation_valid( p : gsl_permutation )=>int" },
  { dao__gsl_permutation_reverse, "gsl_permutation_reverse( p : gsl_permutation )" },
  { dao__gsl_permutation_inverse, "gsl_permutation_inverse( inv : gsl_permutation, p : gsl_permutation )=>int" },
  { dao__gsl_permutation_next, "gsl_permutation_next( p : gsl_permutation )=>int" },
  { dao__gsl_permutation_prev, "gsl_permutation_prev( p : gsl_permutation )=>int" },
  { dao__gsl_permutation_mul, "gsl_permutation_mul( p : gsl_permutation, pa : gsl_permutation, pb : gsl_permutation )=>int" },
  { dao__gsl_permutation_linear_to_canonical, "gsl_permutation_linear_to_canonical( q : gsl_permutation, p : gsl_permutation )=>int" },
  { dao__gsl_permutation_canonical_to_linear, "gsl_permutation_canonical_to_linear( p : gsl_permutation, q : gsl_permutation )=>int" },
  { dao__gsl_permutation_inversions, "gsl_permutation_inversions( p : gsl_permutation )=>int" },
  { dao__gsl_permutation_linear_cycles, "gsl_permutation_linear_cycles( p : gsl_permutation )=>int" },
  { dao__gsl_permutation_canonical_cycles, "gsl_permutation_canonical_cycles( q : gsl_permutation )=>int" },
  { dao__gsl_permutation_get, "gsl_permutation_get( p : gsl_permutation, i : int )=>int" },
  { dao__gsl_permute_char, "gsl_permute_char( p : array<int>, data : string, stride : int, n : int )=>int" },
  { dao__gsl_permute_char_inverse, "gsl_permute_char_inverse( p : array<int>, data : string, stride : int, n : int )=>int" },
  { dao__gsl_permute, "gsl_permute( p : array<int>, data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_permute_inverse, "gsl_permute_inverse( p : array<int>, data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_permute_float, "gsl_permute_float( p : array<int>, data : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_permute_float_inverse, "gsl_permute_float_inverse( p : array<int>, data : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_permute_int, "gsl_permute_int( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_int_inverse, "gsl_permute_int_inverse( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_long, "gsl_permute_long( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_long_inverse, "gsl_permute_long_inverse( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_long_double, "gsl_permute_long_double( p : array<int>, data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_permute_long_double_inverse, "gsl_permute_long_double_inverse( p : array<int>, data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_permute_short, "gsl_permute_short( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_short_inverse, "gsl_permute_short_inverse( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_uchar, "gsl_permute_uchar( p : array<int>, data : string, stride : int, n : int )=>int" },
  { dao__gsl_permute_uchar_inverse, "gsl_permute_uchar_inverse( p : array<int>, data : string, stride : int, n : int )=>int" },
  { dao__gsl_permute_uint, "gsl_permute_uint( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_uint_inverse, "gsl_permute_uint_inverse( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_ulong, "gsl_permute_ulong( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_ulong_inverse, "gsl_permute_ulong_inverse( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_ushort, "gsl_permute_ushort( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_ushort_inverse, "gsl_permute_ushort_inverse( p : array<int>, data : array<int>, stride : int, n : int )=>int" },
  { dao__gsl_permute_vector_char, "gsl_permute_vector_char( p : gsl_permutation, v : gsl_vector_char )=>int" },
  { dao__gsl_permute_vector_char_inverse, "gsl_permute_vector_char_inverse( p : gsl_permutation, v : gsl_vector_char )=>int" },
  { dao__gsl_permute_vector, "gsl_permute_vector( p : gsl_permutation, v : gsl_vector )=>int" },
  { dao__gsl_permute_vector_inverse, "gsl_permute_vector_inverse( p : gsl_permutation, v : gsl_vector )=>int" },
  { dao__gsl_permute_vector_float, "gsl_permute_vector_float( p : gsl_permutation, v : gsl_vector_float )=>int" },
  { dao__gsl_permute_vector_float_inverse, "gsl_permute_vector_float_inverse( p : gsl_permutation, v : gsl_vector_float )=>int" },
  { dao__gsl_permute_vector_int, "gsl_permute_vector_int( p : gsl_permutation, v : gsl_vector_int )=>int" },
  { dao__gsl_permute_vector_int_inverse, "gsl_permute_vector_int_inverse( p : gsl_permutation, v : gsl_vector_int )=>int" },
  { dao__gsl_permute_vector_long, "gsl_permute_vector_long( p : gsl_permutation, v : gsl_vector_long )=>int" },
  { dao__gsl_permute_vector_long_inverse, "gsl_permute_vector_long_inverse( p : gsl_permutation, v : gsl_vector_long )=>int" },
  { dao__gsl_permute_vector_long_double, "gsl_permute_vector_long_double( p : gsl_permutation, v : gsl_vector_long_double )=>int" },
  { dao__gsl_permute_vector_long_double_inverse, "gsl_permute_vector_long_double_inverse( p : gsl_permutation, v : gsl_vector_long_double )=>int" },
  { dao__gsl_permute_vector_short, "gsl_permute_vector_short( p : gsl_permutation, v : gsl_vector_short )=>int" },
  { dao__gsl_permute_vector_short_inverse, "gsl_permute_vector_short_inverse( p : gsl_permutation, v : gsl_vector_short )=>int" },
  { dao__gsl_permute_vector_uchar, "gsl_permute_vector_uchar( p : gsl_permutation, v : gsl_vector_uchar )=>int" },
  { dao__gsl_permute_vector_uchar_inverse, "gsl_permute_vector_uchar_inverse( p : gsl_permutation, v : gsl_vector_uchar )=>int" },
  { dao__gsl_permute_vector_uint, "gsl_permute_vector_uint( p : gsl_permutation, v : gsl_vector_uint )=>int" },
  { dao__gsl_permute_vector_uint_inverse, "gsl_permute_vector_uint_inverse( p : gsl_permutation, v : gsl_vector_uint )=>int" },
  { dao__gsl_permute_vector_ulong, "gsl_permute_vector_ulong( p : gsl_permutation, v : gsl_vector_ulong )=>int" },
  { dao__gsl_permute_vector_ulong_inverse, "gsl_permute_vector_ulong_inverse( p : gsl_permutation, v : gsl_vector_ulong )=>int" },
  { dao__gsl_permute_vector_ushort, "gsl_permute_vector_ushort( p : gsl_permutation, v : gsl_vector_ushort )=>int" },
  { dao__gsl_permute_vector_ushort_inverse, "gsl_permute_vector_ushort_inverse( p : gsl_permutation, v : gsl_vector_ushort )=>int" },
  { dao__gsl_permute_complex, "gsl_permute_complex( p : array<int>, data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_permute_complex_inverse, "gsl_permute_complex_inverse( p : array<int>, data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_permute_complex_float, "gsl_permute_complex_float( p : array<int>, data : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_permute_complex_float_inverse, "gsl_permute_complex_float_inverse( p : array<int>, data : array<float>, stride : int, n : int )=>int" },
  { dao__gsl_permute_complex_long_double, "gsl_permute_complex_long_double( p : array<int>, data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_permute_complex_long_double_inverse, "gsl_permute_complex_long_double_inverse( p : array<int>, data : array<double>, stride : int, n : int )=>int" },
  { dao__gsl_permute_vector_complex, "gsl_permute_vector_complex( p : gsl_permutation, v : gsl_vector_complex )=>int" },
  { dao__gsl_permute_vector_complex_inverse, "gsl_permute_vector_complex_inverse( p : gsl_permutation, v : gsl_vector_complex )=>int" },
  { dao__gsl_permute_vector_complex_float, "gsl_permute_vector_complex_float( p : gsl_permutation, v : gsl_vector_complex_float )=>int" },
  { dao__gsl_permute_vector_complex_float_inverse, "gsl_permute_vector_complex_float_inverse( p : gsl_permutation, v : gsl_vector_complex_float )=>int" },
  { dao__gsl_permute_vector_complex_long_double, "gsl_permute_vector_complex_long_double( p : gsl_permutation, v : gsl_vector_complex_long_double )=>int" },
  { dao__gsl_permute_vector_complex_long_double_inverse, "gsl_permute_vector_complex_long_double_inverse( p : gsl_permutation, v : gsl_vector_complex_long_double )=>int" },
  { NULL, NULL }
};
/* gsl_permutation.h */
static void dao__gsl_permutation_alloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_permutation* _gsl_permutation_alloc = gsl_permutation_alloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_permutation_alloc, dao_gsl_permutation_Typer );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_calloc( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t n= (size_t) _p[0]->v.i;

  gsl_permutation* _gsl_permutation_calloc = gsl_permutation_calloc( n );
  DaoContext_WrapCData( _ctx, (void*) _gsl_permutation_calloc, dao_gsl_permutation_Typer );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_init( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  gsl_permutation_init( p );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_free( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  gsl_permutation_free( p );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_memcpy( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* dest= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_permutation* src= (gsl_permutation*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_memcpy = gsl_permutation_memcpy( dest, src );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_memcpy );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_fread( DaoContext *_ctx, DValue *_p[], int _n )
{
  FILE* stream= (FILE*) DaoStream_GetFile( _p[0]->v.stream );
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_fread = gsl_permutation_fread( stream, p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_fread );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_fwrite( DaoContext *_ctx, DValue *_p[], int _n )
{
  FILE* stream= (FILE*) DaoStream_GetFile( _p[0]->v.stream );
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_fwrite = gsl_permutation_fwrite( stream, p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_fwrite );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_fscanf( DaoContext *_ctx, DValue *_p[], int _n )
{
  FILE* stream= (FILE*) DaoStream_GetFile( _p[0]->v.stream );
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_fscanf = gsl_permutation_fscanf( stream, p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_fscanf );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_fprintf( DaoContext *_ctx, DValue *_p[], int _n )
{
  FILE* stream= (FILE*) DaoStream_GetFile( _p[0]->v.stream );
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_permutation_Typer );
  char* format= (char*) DString_GetMBS( _p[2]->v.s );

  int _gsl_permutation_fprintf = gsl_permutation_fprintf( stream, p, format );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_fprintf );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_size( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  size_t _gsl_permutation_size = gsl_permutation_size( p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_size );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_data( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  size_t* _gsl_permutation_data = gsl_permutation_data( p );
  DaoContext_PutArrayInteger( _ctx, (int*) _gsl_permutation_data, 0 );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_swap( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  size_t i= (size_t) _p[1]->v.i;
  size_t j= (size_t) _p[2]->v.i;

  int _gsl_permutation_swap = gsl_permutation_swap( p, i, j );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_swap );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_valid( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_valid = gsl_permutation_valid( p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_valid );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_reverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  gsl_permutation_reverse( p );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* inv= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_inverse = gsl_permutation_inverse( inv, p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_inverse );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_next( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_next = gsl_permutation_next( p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_next );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_prev( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_prev = gsl_permutation_prev( p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_prev );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_mul( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_permutation* pa= (gsl_permutation*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_permutation_Typer );
  gsl_permutation* pb= (gsl_permutation*) DaoCData_CastData( _p[2]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_mul = gsl_permutation_mul( p, pa, pb );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_mul );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_linear_to_canonical( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* q= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_linear_to_canonical = gsl_permutation_linear_to_canonical( q, p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_linear_to_canonical );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_canonical_to_linear( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_permutation* q= (gsl_permutation*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_permutation_Typer );

  int _gsl_permutation_canonical_to_linear = gsl_permutation_canonical_to_linear( p, q );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_canonical_to_linear );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_inversions( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  size_t _gsl_permutation_inversions = gsl_permutation_inversions( p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_inversions );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_linear_cycles( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  size_t _gsl_permutation_linear_cycles = gsl_permutation_linear_cycles( p );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_linear_cycles );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_canonical_cycles( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* q= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );

  size_t _gsl_permutation_canonical_cycles = gsl_permutation_canonical_cycles( q );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_canonical_cycles );
}
/* gsl_permutation.h */
static void dao__gsl_permutation_get( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  size_t i= (size_t) _p[1]->v.i;

  size_t _gsl_permutation_get = gsl_permutation_get( p, i );
  DaoContext_PutInteger( _ctx, (int) _gsl_permutation_get );
}
/* gsl_permute_char.h */
static void dao__gsl_permute_char( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  char* data= (char*) DString_GetMBS( _p[1]->v.s );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_char = gsl_permute_char( p, data, stride, n );
  DString_SetMBS( _p[1]->v.s, (char*) data );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_char );
}
/* gsl_permute_char.h */
static void dao__gsl_permute_char_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  char* data= (char*) DString_GetMBS( _p[1]->v.s );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_char_inverse = gsl_permute_char_inverse( p, data, stride, n );
  DString_SetMBS( _p[1]->v.s, (char*) data );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_char_inverse );
}
/* gsl_permute_double.h */
static void dao__gsl_permute( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  double* data= (double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute = gsl_permute( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute );
}
/* gsl_permute_double.h */
static void dao__gsl_permute_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  double* data= (double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_inverse = gsl_permute_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_inverse );
}
/* gsl_permute_float.h */
static void dao__gsl_permute_float( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  float* data= (float*) DaoArray_ToFloat( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_float = gsl_permute_float( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_float );
}
/* gsl_permute_float.h */
static void dao__gsl_permute_float_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  float* data= (float*) DaoArray_ToFloat( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_float_inverse = gsl_permute_float_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_float_inverse );
}
/* gsl_permute_int.h */
static void dao__gsl_permute_int( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  int* data= (int*) DaoArray_ToInt( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_int = gsl_permute_int( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_int );
}
/* gsl_permute_int.h */
static void dao__gsl_permute_int_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  int* data= (int*) DaoArray_ToInt( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_int_inverse = gsl_permute_int_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_int_inverse );
}
/* gsl_permute_long.h */
static void dao__gsl_permute_long( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  long* data= (long*) DaoArray_ToInt( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_long = gsl_permute_long( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_long );
}
/* gsl_permute_long.h */
static void dao__gsl_permute_long_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  long* data= (long*) DaoArray_ToInt( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_long_inverse = gsl_permute_long_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_long_inverse );
}
/* gsl_permute_long_double.h */
static void dao__gsl_permute_long_double( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  long double* data= (long double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_long_double = gsl_permute_long_double( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_long_double );
}
/* gsl_permute_long_double.h */
static void dao__gsl_permute_long_double_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  long double* data= (long double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_long_double_inverse = gsl_permute_long_double_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_long_double_inverse );
}
/* gsl_permute_short.h */
static void dao__gsl_permute_short( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  short* data= (short*) DaoArray_ToShort( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_short = gsl_permute_short( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_short );
}
/* gsl_permute_short.h */
static void dao__gsl_permute_short_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  short* data= (short*) DaoArray_ToShort( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_short_inverse = gsl_permute_short_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_short_inverse );
}
/* gsl_permute_uchar.h */
static void dao__gsl_permute_uchar( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  unsigned char* data= (unsigned char*) DString_GetMBS( _p[1]->v.s );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_uchar = gsl_permute_uchar( p, data, stride, n );
  DString_SetMBS( _p[1]->v.s, (char*) data );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_uchar );
}
/* gsl_permute_uchar.h */
static void dao__gsl_permute_uchar_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  unsigned char* data= (unsigned char*) DString_GetMBS( _p[1]->v.s );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_uchar_inverse = gsl_permute_uchar_inverse( p, data, stride, n );
  DString_SetMBS( _p[1]->v.s, (char*) data );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_uchar_inverse );
}
/* gsl_permute_uint.h */
static void dao__gsl_permute_uint( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  unsigned int* data= (unsigned int*) DaoArray_ToUInt( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_uint = gsl_permute_uint( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_uint );
}
/* gsl_permute_uint.h */
static void dao__gsl_permute_uint_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  unsigned int* data= (unsigned int*) DaoArray_ToUInt( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_uint_inverse = gsl_permute_uint_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_uint_inverse );
}
/* gsl_permute_ulong.h */
static void dao__gsl_permute_ulong( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  unsigned long* data= (unsigned long*) DaoArray_ToUInt( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_ulong = gsl_permute_ulong( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_ulong );
}
/* gsl_permute_ulong.h */
static void dao__gsl_permute_ulong_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  unsigned long* data= (unsigned long*) DaoArray_ToUInt( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_ulong_inverse = gsl_permute_ulong_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_ulong_inverse );
}
/* gsl_permute_ushort.h */
static void dao__gsl_permute_ushort( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  unsigned short* data= (unsigned short*) DaoArray_ToUShort( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_ushort = gsl_permute_ushort( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_ushort );
}
/* gsl_permute_ushort.h */
static void dao__gsl_permute_ushort_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  unsigned short* data= (unsigned short*) DaoArray_ToUShort( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_ushort_inverse = gsl_permute_ushort_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_ushort_inverse );
}
/* gsl_permute_vector_char.h */
static void dao__gsl_permute_vector_char( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_char* v= (gsl_vector_char*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_char_Typer );

  int _gsl_permute_vector_char = gsl_permute_vector_char( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_char );
}
/* gsl_permute_vector_char.h */
static void dao__gsl_permute_vector_char_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_char* v= (gsl_vector_char*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_char_Typer );

  int _gsl_permute_vector_char_inverse = gsl_permute_vector_char_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_char_inverse );
}
/* gsl_permute_vector_double.h */
static void dao__gsl_permute_vector( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector* v= (gsl_vector*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_Typer );

  int _gsl_permute_vector = gsl_permute_vector( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector );
}
/* gsl_permute_vector_double.h */
static void dao__gsl_permute_vector_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector* v= (gsl_vector*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_Typer );

  int _gsl_permute_vector_inverse = gsl_permute_vector_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_inverse );
}
/* gsl_permute_vector_float.h */
static void dao__gsl_permute_vector_float( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_float* v= (gsl_vector_float*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_float_Typer );

  int _gsl_permute_vector_float = gsl_permute_vector_float( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_float );
}
/* gsl_permute_vector_float.h */
static void dao__gsl_permute_vector_float_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_float* v= (gsl_vector_float*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_float_Typer );

  int _gsl_permute_vector_float_inverse = gsl_permute_vector_float_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_float_inverse );
}
/* gsl_permute_vector_int.h */
static void dao__gsl_permute_vector_int( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_int* v= (gsl_vector_int*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_int_Typer );

  int _gsl_permute_vector_int = gsl_permute_vector_int( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_int );
}
/* gsl_permute_vector_int.h */
static void dao__gsl_permute_vector_int_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_int* v= (gsl_vector_int*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_int_Typer );

  int _gsl_permute_vector_int_inverse = gsl_permute_vector_int_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_int_inverse );
}
/* gsl_permute_vector_long.h */
static void dao__gsl_permute_vector_long( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_long* v= (gsl_vector_long*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_long_Typer );

  int _gsl_permute_vector_long = gsl_permute_vector_long( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_long );
}
/* gsl_permute_vector_long.h */
static void dao__gsl_permute_vector_long_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_long* v= (gsl_vector_long*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_long_Typer );

  int _gsl_permute_vector_long_inverse = gsl_permute_vector_long_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_long_inverse );
}
/* gsl_permute_vector_long_double.h */
static void dao__gsl_permute_vector_long_double( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_long_double* v= (gsl_vector_long_double*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_long_double_Typer );

  int _gsl_permute_vector_long_double = gsl_permute_vector_long_double( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_long_double );
}
/* gsl_permute_vector_long_double.h */
static void dao__gsl_permute_vector_long_double_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_long_double* v= (gsl_vector_long_double*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_long_double_Typer );

  int _gsl_permute_vector_long_double_inverse = gsl_permute_vector_long_double_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_long_double_inverse );
}
/* gsl_permute_vector_short.h */
static void dao__gsl_permute_vector_short( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_short* v= (gsl_vector_short*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_short_Typer );

  int _gsl_permute_vector_short = gsl_permute_vector_short( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_short );
}
/* gsl_permute_vector_short.h */
static void dao__gsl_permute_vector_short_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_short* v= (gsl_vector_short*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_short_Typer );

  int _gsl_permute_vector_short_inverse = gsl_permute_vector_short_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_short_inverse );
}
/* gsl_permute_vector_uchar.h */
static void dao__gsl_permute_vector_uchar( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_uchar* v= (gsl_vector_uchar*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_uchar_Typer );

  int _gsl_permute_vector_uchar = gsl_permute_vector_uchar( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_uchar );
}
/* gsl_permute_vector_uchar.h */
static void dao__gsl_permute_vector_uchar_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_uchar* v= (gsl_vector_uchar*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_uchar_Typer );

  int _gsl_permute_vector_uchar_inverse = gsl_permute_vector_uchar_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_uchar_inverse );
}
/* gsl_permute_vector_uint.h */
static void dao__gsl_permute_vector_uint( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_uint* v= (gsl_vector_uint*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_uint_Typer );

  int _gsl_permute_vector_uint = gsl_permute_vector_uint( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_uint );
}
/* gsl_permute_vector_uint.h */
static void dao__gsl_permute_vector_uint_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_uint* v= (gsl_vector_uint*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_uint_Typer );

  int _gsl_permute_vector_uint_inverse = gsl_permute_vector_uint_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_uint_inverse );
}
/* gsl_permute_vector_ulong.h */
static void dao__gsl_permute_vector_ulong( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_ulong* v= (gsl_vector_ulong*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_ulong_Typer );

  int _gsl_permute_vector_ulong = gsl_permute_vector_ulong( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_ulong );
}
/* gsl_permute_vector_ulong.h */
static void dao__gsl_permute_vector_ulong_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_ulong* v= (gsl_vector_ulong*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_ulong_Typer );

  int _gsl_permute_vector_ulong_inverse = gsl_permute_vector_ulong_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_ulong_inverse );
}
/* gsl_permute_vector_ushort.h */
static void dao__gsl_permute_vector_ushort( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_ushort* v= (gsl_vector_ushort*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_ushort_Typer );

  int _gsl_permute_vector_ushort = gsl_permute_vector_ushort( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_ushort );
}
/* gsl_permute_vector_ushort.h */
static void dao__gsl_permute_vector_ushort_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_ushort* v= (gsl_vector_ushort*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_ushort_Typer );

  int _gsl_permute_vector_ushort_inverse = gsl_permute_vector_ushort_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_ushort_inverse );
}
/* gsl_permute_complex_double.h */
static void dao__gsl_permute_complex( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  double* data= (double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_complex = gsl_permute_complex( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_complex );
}
/* gsl_permute_complex_double.h */
static void dao__gsl_permute_complex_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  double* data= (double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_complex_inverse = gsl_permute_complex_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_complex_inverse );
}
/* gsl_permute_complex_float.h */
static void dao__gsl_permute_complex_float( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  float* data= (float*) DaoArray_ToFloat( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_complex_float = gsl_permute_complex_float( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_complex_float );
}
/* gsl_permute_complex_float.h */
static void dao__gsl_permute_complex_float_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  float* data= (float*) DaoArray_ToFloat( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_complex_float_inverse = gsl_permute_complex_float_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_complex_float_inverse );
}
/* gsl_permute_complex_long_double.h */
static void dao__gsl_permute_complex_long_double( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  long double* data= (long double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_complex_long_double = gsl_permute_complex_long_double( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_complex_long_double );
}
/* gsl_permute_complex_long_double.h */
static void dao__gsl_permute_complex_long_double_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  size_t* p= (size_t*) DaoArray_ToUInt( _p[0]->v.array );
  long double* data= (long double*) DaoArray_ToDouble( _p[1]->v.array );
  size_t stride= (size_t) _p[2]->v.i;
  size_t n= (size_t) _p[3]->v.i;

  int _gsl_permute_complex_long_double_inverse = gsl_permute_complex_long_double_inverse( p, data, stride, n );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_complex_long_double_inverse );
}
/* gsl_permute_vector_complex_double.h */
static void dao__gsl_permute_vector_complex( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_complex* v= (gsl_vector_complex*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_complex_Typer );

  int _gsl_permute_vector_complex = gsl_permute_vector_complex( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_complex );
}
/* gsl_permute_vector_complex_double.h */
static void dao__gsl_permute_vector_complex_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_complex* v= (gsl_vector_complex*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_complex_Typer );

  int _gsl_permute_vector_complex_inverse = gsl_permute_vector_complex_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_complex_inverse );
}
/* gsl_permute_vector_complex_float.h */
static void dao__gsl_permute_vector_complex_float( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_complex_float* v= (gsl_vector_complex_float*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_complex_float_Typer );

  int _gsl_permute_vector_complex_float = gsl_permute_vector_complex_float( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_complex_float );
}
/* gsl_permute_vector_complex_float.h */
static void dao__gsl_permute_vector_complex_float_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_complex_float* v= (gsl_vector_complex_float*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_complex_float_Typer );

  int _gsl_permute_vector_complex_float_inverse = gsl_permute_vector_complex_float_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_complex_float_inverse );
}
/* gsl_permute_vector_complex_long_double.h */
static void dao__gsl_permute_vector_complex_long_double( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_complex_long_double* v= (gsl_vector_complex_long_double*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_complex_long_double_Typer );

  int _gsl_permute_vector_complex_long_double = gsl_permute_vector_complex_long_double( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_complex_long_double );
}
/* gsl_permute_vector_complex_long_double.h */
static void dao__gsl_permute_vector_complex_long_double_inverse( DaoContext *_ctx, DValue *_p[], int _n )
{
  gsl_permutation* p= (gsl_permutation*) DaoCData_CastData( _p[0]->v.cdata, dao_gsl_permutation_Typer );
  gsl_vector_complex_long_double* v= (gsl_vector_complex_long_double*) DaoCData_CastData( _p[1]->v.cdata, dao_gsl_vector_complex_long_double_Typer );

  int _gsl_permute_vector_complex_long_double_inverse = gsl_permute_vector_complex_long_double_inverse( p, v );
  DaoContext_PutInteger( _ctx, (int) _gsl_permute_vector_complex_long_double_inverse );
}

int DaoOnLoad( DaoVmSpace *vms, DaoNameSpace *ns )
{
  DaoTypeBase *typers[107];
  const char *aliases[3];
  __daoVmSpace = vms;
  typers[0] = dao__gsl_matrix_char_const_view_Typer,
  typers[1] = dao__gsl_matrix_char_view_Typer,
  typers[2] = dao__gsl_matrix_complex_const_view_Typer,
  typers[3] = dao__gsl_matrix_complex_float_const_view_Typer,
  typers[4] = dao__gsl_matrix_complex_float_view_Typer,
  typers[5] = dao__gsl_matrix_complex_long_double_const_view_Typer,
  typers[6] = dao__gsl_matrix_complex_long_double_view_Typer,
  typers[7] = dao__gsl_matrix_complex_view_Typer,
  typers[8] = dao__gsl_matrix_const_view_Typer,
  typers[9] = dao__gsl_matrix_float_const_view_Typer,
  typers[10] = dao__gsl_matrix_float_view_Typer,
  typers[11] = dao__gsl_matrix_int_const_view_Typer,
  typers[12] = dao__gsl_matrix_int_view_Typer,
  typers[13] = dao__gsl_matrix_long_const_view_Typer,
  typers[14] = dao__gsl_matrix_long_double_const_view_Typer,
  typers[15] = dao__gsl_matrix_long_double_view_Typer,
  typers[16] = dao__gsl_matrix_long_view_Typer,
  typers[17] = dao__gsl_matrix_short_const_view_Typer,
  typers[18] = dao__gsl_matrix_short_view_Typer,
  typers[19] = dao__gsl_matrix_uchar_const_view_Typer,
  typers[20] = dao__gsl_matrix_uchar_view_Typer,
  typers[21] = dao__gsl_matrix_uint_const_view_Typer,
  typers[22] = dao__gsl_matrix_uint_view_Typer,
  typers[23] = dao__gsl_matrix_ulong_const_view_Typer,
  typers[24] = dao__gsl_matrix_ulong_view_Typer,
  typers[25] = dao__gsl_matrix_ushort_const_view_Typer,
  typers[26] = dao__gsl_matrix_ushort_view_Typer,
  typers[27] = dao__gsl_matrix_view_Typer,
  typers[28] = dao__gsl_vector_char_const_view_Typer,
  typers[29] = dao__gsl_vector_char_view_Typer,
  typers[30] = dao__gsl_vector_complex_const_view_Typer,
  typers[31] = dao__gsl_vector_complex_float_const_view_Typer,
  typers[32] = dao__gsl_vector_complex_float_view_Typer,
  typers[33] = dao__gsl_vector_complex_long_double_const_view_Typer,
  typers[34] = dao__gsl_vector_complex_long_double_view_Typer,
  typers[35] = dao__gsl_vector_complex_view_Typer,
  typers[36] = dao__gsl_vector_const_view_Typer,
  typers[37] = dao__gsl_vector_float_const_view_Typer,
  typers[38] = dao__gsl_vector_float_view_Typer,
  typers[39] = dao__gsl_vector_int_const_view_Typer,
  typers[40] = dao__gsl_vector_int_view_Typer,
  typers[41] = dao__gsl_vector_long_const_view_Typer,
  typers[42] = dao__gsl_vector_long_double_const_view_Typer,
  typers[43] = dao__gsl_vector_long_double_view_Typer,
  typers[44] = dao__gsl_vector_long_view_Typer,
  typers[45] = dao__gsl_vector_short_const_view_Typer,
  typers[46] = dao__gsl_vector_short_view_Typer,
  typers[47] = dao__gsl_vector_uchar_const_view_Typer,
  typers[48] = dao__gsl_vector_uchar_view_Typer,
  typers[49] = dao__gsl_vector_uint_const_view_Typer,
  typers[50] = dao__gsl_vector_uint_view_Typer,
  typers[51] = dao__gsl_vector_ulong_const_view_Typer,
  typers[52] = dao__gsl_vector_ulong_view_Typer,
  typers[53] = dao__gsl_vector_ushort_const_view_Typer,
  typers[54] = dao__gsl_vector_ushort_view_Typer,
  typers[55] = dao__gsl_vector_view_Typer,
  typers[56] = dao_gsl_block_Typer,
  typers[57] = dao_gsl_block_char_Typer,
  typers[58] = dao_gsl_block_complex_Typer,
  typers[59] = dao_gsl_block_complex_float_Typer,
  typers[60] = dao_gsl_block_complex_long_double_Typer,
  typers[61] = dao_gsl_block_float_Typer,
  typers[62] = dao_gsl_block_int_Typer,
  typers[63] = dao_gsl_block_long_Typer,
  typers[64] = dao_gsl_block_long_double_Typer,
  typers[65] = dao_gsl_block_short_Typer,
  typers[66] = dao_gsl_block_uchar_Typer,
  typers[67] = dao_gsl_block_uint_Typer,
  typers[68] = dao_gsl_block_ulong_Typer,
  typers[69] = dao_gsl_block_ushort_Typer,
  typers[70] = dao_gsl_complex_Typer,
  typers[71] = dao_gsl_complex_float_Typer,
  typers[72] = dao_gsl_complex_long_double_Typer,
  typers[73] = dao_gsl_error_handler_t_Typer,
  typers[74] = dao_gsl_ieee_double_rep_Typer,
  typers[75] = dao_gsl_ieee_float_rep_Typer,
  typers[76] = dao_gsl_matrix_Typer,
  typers[77] = dao_gsl_matrix_char_Typer,
  typers[78] = dao_gsl_matrix_complex_Typer,
  typers[79] = dao_gsl_matrix_complex_float_Typer,
  typers[80] = dao_gsl_matrix_complex_long_double_Typer,
  typers[81] = dao_gsl_matrix_float_Typer,
  typers[82] = dao_gsl_matrix_int_Typer,
  typers[83] = dao_gsl_matrix_long_Typer,
  typers[84] = dao_gsl_matrix_long_double_Typer,
  typers[85] = dao_gsl_matrix_short_Typer,
  typers[86] = dao_gsl_matrix_uchar_Typer,
  typers[87] = dao_gsl_matrix_uint_Typer,
  typers[88] = dao_gsl_matrix_ulong_Typer,
  typers[89] = dao_gsl_matrix_ushort_Typer,
  typers[90] = dao_gsl_permutation_Typer,
  typers[91] = dao_gsl_stream_handler_t_Typer,
  typers[92] = dao_gsl_vector_Typer,
  typers[93] = dao_gsl_vector_char_Typer,
  typers[94] = dao_gsl_vector_complex_Typer,
  typers[95] = dao_gsl_vector_complex_float_Typer,
  typers[96] = dao_gsl_vector_complex_long_double_Typer,
  typers[97] = dao_gsl_vector_float_Typer,
  typers[98] = dao_gsl_vector_int_Typer,
  typers[99] = dao_gsl_vector_long_Typer,
  typers[100] = dao_gsl_vector_long_double_Typer,
  typers[101] = dao_gsl_vector_short_Typer,
  typers[102] = dao_gsl_vector_uchar_Typer,
  typers[103] = dao_gsl_vector_uint_Typer,
  typers[104] = dao_gsl_vector_ulong_Typer,
  typers[105] = dao_gsl_vector_ushort_Typer,
  typers[106] = NULL;
  aliases[0] = "gsl_permutation";
  aliases[1] = "gsl_permutation_struct";
  aliases[2] = NULL;
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed" );
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed_array" );
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed_array_long_double" );
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed_long_double" );
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed_long_double_ptr" );
  DaoNameSpace_TypeDefine( ns, "double", "gsl_complex_packed_ptr" );
  DaoNameSpace_TypeDefine( ns, "float", "gsl_complex_packed_array_float" );
  DaoNameSpace_TypeDefine( ns, "float", "gsl_complex_packed_float" );
  DaoNameSpace_TypeDefine( ns, "float", "gsl_complex_packed_float_ptr" );
  DaoNameSpace_TypeDefine( ns, "int", "gsl_mode_t" );
  DaoNameSpace_TypeDefine( ns, "int", "gsl_prec_t" );
  DaoNameSpace_AddConstNumbers( ns, constNumbers );
  DaoNameSpace_WrapTypes( ns, typers );
  DaoNameSpace_TypeDefines( ns, aliases );
  DaoNameSpace_WrapFunctions( ns, dao_Funcs );
  return 0;
}
#ifdef __cplusplus
}
#endif

